/**
 * Clase que representa la estructura de la tabla en un objeto Java. Cada
 * atributo de la tabla es creado como variables y su formato como anotaciones
 *
 * @version 1.0, 25/04/12
 * @author avbravo
 */
package user.allocation;

import java.util.Date;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import system.general.Table;

@ManagedBean(name = "user_allocationBeans")
@RequestScoped
@Table(nombre = "usuario_gps")
public class Beans {

    private Integer id = 0;
    private Integer id_usuario = 0;
    private Integer id_gps = 0;
    private user.login.Beans user_login = new user.login.Beans();
    private gps.general.Beans gps_user = new gps.general.Beans();
    private company.general.Beans company_user =  new company.general.Beans();
    public Beans() {
    }

    /**
     * MÃ©todo constructor que asigna todos los valores del registro de un
     * usuario
     *
     * @param id Atributo que identifica la llave primaria (Autosecuencia)
     * @param usuario Atributo del usuario para el login
     * @param clave Atributo que identifica la contraseÃ±a
     * @param idioma Atributo que identifica el idioma
     * @param login Atributo que identifica la fecha de login
     * @param unlogin Atributo que identifica la fecha de finalizar session
     * @param activo Atributo que identifica si puede o no hacer login
     */
    public Beans(Integer id, Integer id_usuario, Integer id_gps,String imei, String nombre ,Date caducidad,String usuario, String com_nombre) {
        this.id = id;
        this.id_usuario = id_usuario;
        this.id_gps = id_gps;
        gps_user.setImei(imei);
        gps_user.setNombre(nombre + " ");
        gps_user.setCaducidad(caducidad);
        user_login.setUsuario(usuario);
        company_user.setNombre(com_nombre);
    }

    /**
     * MÃ©todo que permite inicializar todas las variables
     */
    public void clearBeans() {
        setId(0);
    }

    /**
     * MÃ©todo que permite sustituir caracteres especiales que puedan afectar
     * las sentencias SQL. por ejemplo: ('), (/). Debe ser utilizado en el (set)
     * de los atributos tipo String.
     *
     * @param data cualquier dato tipo String
     * @return Devuelve el dato con la sustituciÃ³n de caracteres especiales
     */
    private String strScape(String data) {
        data = data.trim();
        data = data.replace("'", "''");
        data = data.replace("\\", "\\\\");
        return data;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getId() {
        return this.id;
    }

    /**
     * @return the id_usuario
     */
    public Integer getId_usuario() {
        return id_usuario;
    }

    /**
     * @param id_usuario the id_usuario to set
     */
    public void setId_usuario(Integer id_usuario) {
        this.id_usuario = id_usuario;
    }

    /**
     * @return the id_gps
     */
    public Integer getId_gps() {
        return id_gps;
    }

    /**
     * @param id_gps the id_gps to set
     */
    public void setId_gps(Integer id_gps) {
        this.id_gps = id_gps;
    }

    public user.login.Beans getUser_loginBeans() {
        return user_login;
    }

    /**
     * @return the gps_user
     */
    public gps.general.Beans getGps_user() {
        return gps_user;
    }

    /**
     * @param gps_user the gps_user to set
     */
    public void setGps_user(gps.general.Beans gps_user) {
        this.gps_user = gps_user;
    }

    /**
     * @return the company_user
     */
    public company.general.Beans getCompany_user() {
        return company_user;
    }

    /**
     * @param company_user the company_user to set
     */
    public void setCompany_user(company.general.Beans company_user) {
        this.company_user = company_user;
    }
}
